#include <iostream>
using namespace std;

/*
    【题目199】编写一个程序，设计一个Cdate类，满足以下条件。
    （1）输出日期格式为：日-月-年；
    （2）输出在当前日期上加两天后的日期；
    （3）设置日期。
*/

class Cdate
{
private:
    int year;
    int month;
    int day;

public:
    Cdate(int y, int m, int d)
    {
        year = y;
        month = m;
        day = d;
    }
    Cdate()
    {
        year = 0;
        month = 0;
        day = 0;
    }

    void setDate(int y, int m, int d)
    {
        year = y;
        month = m;
        day = d;
    }

    void printDate()
    {
        cout << day << "-" << month << "-" << year << endl;
    }

    void addTwoDays()
    {
        if (month == 2)
        {
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
            {
                if (day == 28)
                {
                    day = 1;
                    month++;
                }
                else
                {
                    day += 2;
                }
            }
            else
            {
                if (day == 27)
                {
                    day = 1;
                    month++;
                }
                else
                {
                    day += 2;
                }
            }
        }
        else if (month == 4 || month == 6 || month == 9 || month == 11)
        {
            if (day == 29)
            {
                day = 1;
                month++;
            }
            else
            {
                day += 2;
            }
        }
        else
        {
            if (day == 30)
            {
                if (month == 12)
                {
                    day = 1;
                    month = 1;
                    year++;
                }
                else
                {
                    day = 1;
                    month++;
                }
            }
            else
            {
                day += 2;
            }
        }
    }
};

int main()
{
    Cdate d1(2022, 10, 30);

    d1.printDate();

    d1.addTwoDays();

    d1.printDate();
    return 0;
}